package leetcode.code0560;

import java.util.HashMap;
import java.util.Map;

public class Solution1 extends Solution560 {

	@Override
	public int subarraySum(int[] nums, int k) {
		int ans = 0;// 答案
		Map<Integer, Integer> hash = new HashMap<>();// Map<累加和,有几个>
		hash.put(0, 1);// 一个没加是个0
		int sum = 0;// 累加和
		for (int num : nums) {
			sum += num; // 当前累加和
			ans += hash.getOrDefault(sum - k, 0); // 之前累加和为sum-k的有多少个都是答案
			hash.put(sum, hash.getOrDefault(sum, 0) + 1);// 更新累加和为sum的子数组数量
		}
		return ans;
	}

	public static void main(String[] args) {
		Solution1 so = new Solution1();
		so.debug1();
		so.debug2();

	}

}
